package threading;

// 原子类

import java.util.concurrent.atomic.AtomicInteger;

public class Demo3 {
    public static void main(String[] args) throws InterruptedException {
        AtomicInteger count = new AtomicInteger(0); // 初始值为0

        /* 常使用的方法：
            // 相当于count++
            count.getAndIncrement();

            // 相当于++count
            count.incrementAndGet();

            // 相当于count--
            count.getAndDecrement();

            // 相当于--count
            count.decrementAndGet();*/

        // 创建线程1
        Thread t1 = new Thread(() -> {
            for (int i = 0; i < 50000; i++) {
                // 相当于count--
                count.getAndDecrement();
            }
        });

        // 创建线程2
        Thread t2 = new Thread(() -> {
            for (int i = 0; i < 50000; i++) {
                // 相当于count--
                count.getAndDecrement();
            }
        });

        t1.start();
        t2.start();
        t1.join();
        t2.join();

        // get方法就是获取到内部的值
        System.out.println(count.get());
    }
}
